package com.card.hwatt.dto;

import java.util.Date;
import java.util.UUID;

import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;

import com.card.hwatt.core.CustomDateDeserializer;
import com.card.hwatt.core.CustomDateSerializer;

/**
 * 班次
 * 
 * @author Administrator
 * 
 */
public class Schedule {

	public UUID id;

	public String name;

	public Long departmentId;

	/**
	 * 开始日期
	 */
	@JsonSerialize(using = CustomDateSerializer.class)
	@JsonDeserialize(using = CustomDateDeserializer.class)
	public Date startDate;

	/**
	 * 终止日期
	 */
	@JsonSerialize(using = CustomDateSerializer.class)
	@JsonDeserialize(using = CustomDateDeserializer.class)
	public Date endDate;

	/**
	 * 上午班id
	 */
	public UUID morningId;

	/**
	 * 上午
	 */
	public String morning;

	/**
	 * 上午班名称
	 */
	public String morningName;

	/**
	 * 上午班上班时间
	 */
	public String morningStartTime;

	/**
	 * 上午班下班时间
	 */
	public int morningEndTime;

	/**
	 * 上午班最早签到时间
	 */
	public int morningBeforeStart;

	/**
	 * 上午班最完签到时间
	 */
	public int morningAfterStart;

	/**
	 * 上午班最早签退时间
	 */
	public int morningBeforeEnd;

	/**
	 * 上午班最完签退时间
	 */
	public int morningAfterEnd;

	/**
	 * 下午
	 */
	public String afternoon;

	/**
	 * 下午班id
	 */
	public UUID afternoonId;

	/**
	 * 下午班名称
	 */
	public String afternoonName;

	/**
	 * 下午班上班时间
	 */
	public String afternoonStartTime;

	/**
	 * 下午班下班时间
	 */
	public int afternoonEndTime;

	/**
	 * 下午班最早签到时间
	 */
	public int afternoonBeforeStart;

	/**
	 * 下午班最完签到时间
	 */
	public int afternoonAfterStart;

	/**
	 * 下午班最早签退时间
	 */
	public int afternoonBeforeEnd;

	/**
	 * 下午班最完签退时间
	 */
	public int afternoonAfterEnd;

	/**
	 * 晚班
	 */
	public String night;

	/**
	 * 晚班id
	 */
	public UUID nightWorkId;
	
	/**
	 * 晚班时间段id
	 */
	public UUID nightId;

	/**
	 * 晚班名称
	 */
	public String nightName;

	/**
	 * 晚班上班时间
	 */
	public String nightStartTime;

	/**
	 * 晚班下班时间
	 */
	public int nightEndTime;

	/**
	 * 晚班最早签到时间
	 */
	public int nightBeforeStart;

	/**
	 * 晚班最完签到时间
	 */
	public int nightAfterStart;

	/**
	 * 晚班最早签退时间
	 */
	public int nightBeforeEnd;

	/**
	 * 晚班最完签退时间
	 */
	public int nightAfterEnd;
	
	/**
	 * 巡检
	 */
	public NightCheck[] nightCheckList;
}
